/*
	Author: Sidek Sirun
	Course: UCI Java Programming I (X460.10)
	Week 1 Assignment: 
	Write a Person class containing the state and behavior identified below.
		Object:
			Person
		State:
			1. First Name
			2. Last Name
			3. Age
			4. Gender
			5. SSN
		Behavior:
			1. Determine full name
			2. Determine age
			3. Determine gender
			4. Determine SSN
			5. Talk
*/

public class Person {
	// Variables (State of the Person object)
	private String  firstName;
	private String  lastName;
	private String  fullName;
	private int     age;
	private String  gender;
	private String  ssn;
	private boolean talk;
	private String  talkIntro;
	private String  talkAsk;
	private String  talkReply;

	// Constructors

	// Methods
	/**
	* @param firstName
	*/
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
	/**
	* @return firstName
	*/
	public String getFirstName() {
		return firstName;
	}

	/**
	* @param lastName
	*/
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	/**
	* @return lastName
	*/
	public String getLastName() {
		return lastName;
	}

	/**
	*	@return fullName
	*/
	public String getFullName() {
		String fullName = getFirstName() + ' ' + getLastName();
		return fullName;
	}

	/**
	* @param age
	*/
	public void setAge(int age) {
		this.age = age;
	}
	/**
	* @return age
	*/
	public int getAge() {
		return age;
	}

	/**
	* @param ssn
	*/
	public void setSSN(String ssn) {
		this.ssn = ssn;
	}
	/**
	* @return ssn
	*/
	public String getSSN() {
		return ssn;
	}

	/**
	* @param gender
	*/
	public void setGender(String gender) {
		this.gender = gender;
	} 

	/**
	* @preturn gender
	*/
	public String getGender() {
		return gender;
	}

	/**
	* @param talk
	*/
	public void setTalk(boolean talk) {
		this.talk = talk;
	}
	/**
	* @return talk
	*/
	public boolean getTalk() {
		return talk;
	}

	/**
	* @return intro
	*/
	public String talkIntro() {
		String intro = "Hello, my name is " + getFullName() + ".";
		return intro;
	}

	/**
	* @return ask
	*/
	public String talkAsk() {
		String ask = "Hi, what is your name?";
		return ask;
	}

	/**
	* @return reply
	*/
	public String talkReply() {
		String reply = "My name is " + getFullName() + ".";
		return reply;
	}

	//public String getPersonInfo(Person p) {
	public String getPersonInfo() {
		String  fullName  = getFullName();
		int     age       = getAge();
		String  gender    = getGender();
		String  ssn       = getSSN();
		boolean talk      = getTalk();

		String personInfo = "Full Name: " + fullName + ", Age: " + age + ", Gender: " + gender + ", SSN: " + ssn;
		return personInfo;
	}

}
